/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.cibertec.action;

import edu.cibertec.actionform.RegistroForm;
import edu.cibertec.bean.BeanUsuario;

import java.io.Reader;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

/**
 *
 * @author Lcaicedo
 */
public class RegistroAction  extends Action {
    
    public ActionForward execute ( ActionMapping mapping,
                                   ActionForm form,
                                   HttpServletRequest request,
                                   HttpServletResponse response)
                                   throws Exception {
        
        
        RegistroForm frmInscripcion = (RegistroForm)form;
        BeanUsuario usuario = new BeanUsuario();
        
        if ( frmInscripcion.getPassword().equals( frmInscripcion.getConfirmpassword() )) {
            usuario.setNombre_usu( frmInscripcion.getNombre_usu() );
            usuario.setApellido_usu( frmInscripcion.getApellido_usu() );
            usuario.setCorreo_usu( frmInscripcion.getCorreo_usu() );
            usuario.setDni_usu( frmInscripcion.getDni_usu() );
            usuario.setTelefono_usu( frmInscripcion.getTelefono_usu() );
            usuario.setCod_tip_usu( frmInscripcion.getCod_tip_usu() );
            usuario.setLogin( frmInscripcion.getLogin() );
            //usuario.setPassword( frmInscripcion.getPassword() );
            usuario.setCod_sede( frmInscripcion.getCod_sede() );
            usuario.setTip_res( frmInscripcion.getTip_res() );
            
            String txtEncriptado = Blowfish.encriptar(frmInscripcion.getPassword(),"AH1N1"); 
            //usuario.setPassword( frmInscripcion.getPassword() );
            usuario.setPassword( txtEncriptado );
            //int longitud = frmInscripcion.getCodDeporte().length;
            //ArrayList listaDeportes = new ArrayList();
            
            /*for (int i = 0; i < longitud; i++ ) {
                listaDeportes.add(frmInscripcion.getCodDeporte()[i]);
                usuario.setListaDeporte(listaDeportes);
            }*/
            
       	SqlMapClient sqlMap;

			try {
				String resource = "SqlMapConfigApplication.xml";
				Reader reader = Resources.getResourceAsReader(resource);
				sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
			} catch (Exception e) {
				e.printStackTrace();
				throw new RuntimeException(
						"Error cargando configuracion en RegistroAction Cause: "
								+ e);
			}
			
			sqlMap.insert("insertUsuario", usuario);
			
			ActionMessages errors = new ActionMessages();
    		errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("registro.msg.ok"));
          
            return mapping.findForward("success");
        }
        
        return mapping.findForward("failure");
    }
    

}
